package com.cw.lang.common.enums;

import java.util.Arrays;

/**
 * 底层的异常
 *
 * @author chenw
 * @version $$Id: EnumLangError.java, v 0.1 2018/9/19 上午9:48 chenw Exp $$
 */
public enum EnumLangError {
    /** 长度不一致 */
    LANG_LENGTH_NOT_EQUALS("LANG000001", "[{1}], [{2}] 和 [{3}]的长度不一致"),
    /** 内部异常 */
    INNER_EXCEPTION("LANG000002", "内部异常"),
    /** 读取Spring配置文件时抛出异常 */
    READING_SPRING_CONFIGURATION_EXCEPTION("LANG000003", "读取Spring配置文件时抛出异常"),
    /** 不合法的时间格式 */
    ILLEGAL_DATE_FORMAT("LANG000004", "不合法的时间格式：[{}]"),;

    /** 码 */
    private final String code;

    /** 描述 */
    private final String description;

    EnumLangError(String code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 根据code查找枚举
     *
     * @param code code
     * @return 枚举
     */
    public static EnumLangError find(String code) {
        return Arrays.stream(EnumLangError.values()).filter(input -> input.getCode().equals(code)).findFirst()
            .orElse(null);
    }

    public String getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }
}
